const express = require('express');
const router = express.Router();
const Login = require("../model/login");
const QcloudSms = require("qcloudsms_js");
//密码登录
router.post('/pwdLogin', (req, res) => {
  //接受来自前端的数据
  const {
    telephone,
    password
  } = req.body;
  Login.pwdLogin(telephone, password).then(results => {
    if (results.length && results[0]) {
      res.json({
        code: 200,
        data: results[0],
        message: '恭喜您，登录成功',
        loginStatus: true
      });
    } else {
      res.json({
        code: 404,
        data: null,
        message: '用户名或者密码不正确，请重新登录',
        loginStatus: false
      });
    }
  }).catch(err => {
    console.log(err);
  })
});
//发送短信验证码
router.post('/sendVerifyCode', (req, res) => {

  let tel = req.body.telephone;
  //腾讯云短信的配置
  // 短信应用SDK AppID
  let appid = 1400187558; // SDK AppID是1400开头

  // 短信应用SDK AppKey
  let appkey = "dc9dc3391896235ddc2325685047edc7";

  // 需要发送短信的手机号码
  let phoneNumbers = [tel];

  // 短信模板ID，需要在短信应用中申请
  let templateId = 285590; // NOTE: 这里的模板ID`7839`只是一个示例，真实的模板ID需要在短信控制台中申请

  // 签名
  let smsSign = "三人行慕课"; // NOTE: 这里的签名只是示例，请使用真实的已申请的签名, 签名参数使用的是`签名内容`，而不是`签名ID`

  // 实例化QcloudSms
  let qcloudsms = QcloudSms(appid, appkey);

  // 设置请求回调处理, 这里只是演示，用户需要自定义相应处理回调
  function callback(err, ress, resData) {
    if (err) {
      console.log("err: ", err);
    } else {
      res.send({
        code: 200,
        success: true,
        message: '发送验证码成功',
        data: ress.req.body.params[0]
      })
    }
  }

  let ssender = qcloudsms.SmsSingleSender();
  //就是给手机上发送的短信验证
  let params = [Math.floor(Math.random() * (9999 - 1000)) + 1000];
  ssender.sendWithParam(86, phoneNumbers[0], templateId,
    params, smsSign, "", "", callback); // 签名参数不能为空串
});
//短信验证码登录
router.post('/verifyCodeLogin', (req, res) => {
  const telephone = req.body.telephone;
  console.log(telephone);
  Login.verifyCodeLogin(telephone).then(results => {
    if (results.length && results[0]) {
      res.json({
        code: 200,
        data: results[0],
        message: '恭喜您，登录成功',
        loginStatus: true
      });
    } else {
      res.json({
        code: 404,
        data: null,
        message: '用户名或者密码不正确，请重新登录',
        loginStatus: false
      });
    }
  }).catch(err => {
    console.log(err);
  })

});
//注册用户
router.post('/registerUser', (req, res) => {
  const {
    username,
    password,
    telephone
  } = req.body;
  //先判断该手机号是否已经被注册了
  Login.isExists(telephone).then(results => {
    if (results.length) {
      //说明已经被注册了
      res.json({
        code: 404,
        data: null,
        message: '此用户已经被注册了，请重试'
      });
    } else {
      //就说明此账号可以被注册
      Login.registerUser(
        username,
        password,
        telephone).then(results => {
        if (results.affectedRows) {
          res.json({
            code: 200,
            data: "success",
            message: "注册成功"
          });
        } else {
          res.json({
            code: 404,
            data: null,
            message: "注册失败,请重试"
          });
        }
      }).catch(err => {
        console.log(err);
      })
    }
  }).catch(err => {
    console.log(err);
  });

});
//重置密码
router.post("/resetPassword", (req, res) => {
  const {
    telephone,
    password
  } = req.body;
  //先判断该用户是否存在，只有存在的用户才可以修改密码
  Login.isExists(telephone).then(results => {
    if (results.length) {
      //说明该用户已经注册，可以修改密码
      Login.changePassword(telephone, password).then(result => {
        if (result.affectedRows) {
          res.json({
            code: 200,
            data: 'OK',
            message: '修改密码成功'
          })
        } else {
          res.json({
            code: 200,
            data: null,
            message: '修改密码失败'
          })
        }
      }).catch(err => {
        console.log(err);
      });
    } else {
      res.json({
        code: 404,
        data: null,
        message: "此用户没有注册，快去注册"
      });
    }
  }).catch(err => {
    console.log(err);
  });
});
module.exports = router